Vimでカーソル下の単語を簡単にWeb検索できるプラグインの紹介

Vimでカーソル下の単語を簡単にWeb検索できるプラグインの紹介

Clock Icon2019.11.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

先日、秋葉原で開かれたVim Conf 2019に参加しました。 どれも素晴らしいセッションが続きましたが、個人的に特に有り難かったのがUjihisa様のセッション「13 Vim plugins I use every day」でした。 その中で紹介されていたプラグインの一つ、open-browser.vimと、その便利な設定についてご紹介できればと思います。

open-browser.vimは、文字通り(カーソル下の)URLをブラウザで開く事ができる便利プラグインです。 加えて、設定次第で任意のWebページでのキーワード検索を簡単に行うことができます。(後述)

検証環境

以下、手元の検証環境です。

  • マシン / OS
    • Mac / macOS Mojave
  • Vim
      
    $ vim --version | head -n 1  
    VIM - Vi IMproved 8.1  (以下略)
    

Plugin Install

GitHubの以下のページからダウンロードできます。
https://github.com/tyru/open-browser.vim

Pluginマネージャーをお使いの方は以下のように設定してください。
vim-plugを使った場合の設定です)

Plug 'tyru/open-browser.vim'

その後、:PlugInstallを実行し、Vimを再起動します。

Setting

open-browser.vimに関する情報を調べてみると、URLを開く利用方法に言及した記事を多く見つけることができました。これはVimで開いたヘルプやドキュメントに書かれたURLをブラウザで開く際に、非常に便利です。

しかし、open-browser.vimのhelpを良く読んでみると、このプラグインの真価は同じコマンドで「文字列の検索」と「URLをブラウザで開くこと」ができる点ではないかと気づきました。

同時に、キーワード検索のカスタマイズが可能であることがわかり、工夫次第で様々なユースケースで生産性向上に繋げられると感じました。MacでAlfredを活用されている方は、AlfredのCUI版(Vim版)といったイメージが近いかもしれません。

以上を踏まえた上で、Normalモードの設定例を以下に示します。あくまで一例ですので、お好みのキーに割り当ててご利用ください。
(個人的にVimのデフォルトキーバインディングを無視し、直感的と思えるキーに割り当てる邪道な設定をしています。)

nmap @ <Nop>
nmap @g <Plug>(openbrowser-search)
nmap <C-@> <Plug>(openbrowser-smart-search)
nnoremap @a :<C-u>execute 'OpenBrowserSearch -alc' expand('<cWORD>')<CR>
nnoremap @d :<C-u>execute 'OpenBrowserSearch -dev' expand('<cWORD>')<CR>
let g:openbrowser_search_engines = {
    \ 'alc': 'http://eow.alc.co.jp/{query}/UTF-8/',
    \ 'dev': 'https://dev.classmethod.jp/?s={query}',
    \ }

1行目: @キーを無効化しています。(本来はマクロ機能で使いますのでご注意ください)
2行目: @gを押すと、設定されたブラウザでGoogle検索結果を開きます。
3行目: Ctrl + @キーを押すと、カーソルがURL上にあればリンクを開き、文字列であればGoogle検索結果を開きます。
4行目: @aを押すと、アルクの検索ページを開き、カーソル下の単語の日本語訳を知ることが出来ます。
5行目: @dを押すと、Developers.IOでカーソル下の文字列を検索することが出来ます。
6行目〜9行目: 上記で使用する検索エンジンを設定します。

さいごに

最後まで読んで頂きありがとうございました。
コピー(yank)&ペーストの手間が不要になる素晴らしいプラグインだと思いました。
どなたかに届けば幸いです。

また最後になりましたが、Vim Confの運営に携わられた皆様、大変お疲れさまでした&有難うございました。
次回のVim Confも楽しみにしております!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.